#ifndef ASTNODE_H
#define ASTNODE_H

#include <vector>

//#include "jtypes.h"
//#include "MethodInfo.h"
//#include "RelocTable.h"

class ConstantPool;
class ClassFile;
class AstNodeExpression;
class CompileVisitor;

/*!
 *  \brief The root class for all AST nodes
 *
 *  The AST (Abstract Syntax Tree) is a tree representation of abstract
 *  syntactic struture of the program.
 *
 *  AstNode is the base class for all types of node.
 */
class AstNode 
{
    //const char * filename;
    //int          line;

  public:
  
    //AstNode(const char * filename, int lineno);

    virtual void dump(int level=0)=0;
    virtual void compile(class CompileVisitor*)=0;
    // !!!
    //virtual int  compile(ClassFile * klass, MethodInfo * method)=0;

};
#endif
